/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package fraccion;

import utilidades.Misc;

/**
 *
 * @author alumno rubén
 */
public class Fraccion {

    private int numerador;//representa el numerador de la fraccion
    private int denominador;//representa el deniminador de la fraccion

    public Fraccion(int numerador, int denominador) throws ArithmeticException{
        this.numerador = numerador;
        this.denominador = denominador;
        if (denominador == 0) {
            throw new ArithmeticException("el denominador no puede ser 0");
        }
    }

    public int getDenominador() {
        return denominador;
    }

    public int getNumerador() {
        return numerador;
    }

    public void setDenominador(int denominador) {
        this.denominador = denominador;
    }

    public void setNumerador(int numerador) {
        this.numerador = numerador;
    }

    public String verFraccion(int numerador, int denominador) {
        return numerador + " / " + denominador;
    }

    public Fraccion simplificarFracciones() {
        int mcd = Misc.mcd(this.numerador, this.denominador);
        this.setNumerador(this.numerador / mcd);
        this.setDenominador(this.denominador / mcd);
        return this;
    }

    public Fraccion multiplicaFracciones(Fraccion fraccion2) {
        Fraccion aux = new Fraccion(this.numerador * fraccion2.numerador, this.denominador * fraccion2.denominador);
        return aux;
    }

    public Fraccion divideFracciones(Fraccion fraccion2) {
        Fraccion aux = new Fraccion(this.numerador * fraccion2.denominador, this.denominador * fraccion2.numerador);
        return aux;
    }

    public Fraccion sumarFracciones(Fraccion fraccion2) {
        int aux1 = this.numerador * fraccion2.denominador;
        int aux2 = fraccion2.numerador * this.denominador;
        Fraccion aux = new Fraccion(aux1 + aux2, this.denominador * fraccion2.denominador);
        return aux;
    }

    public Fraccion restaFracciones(Fraccion fraccion2) {
        int aux1 = this.numerador * fraccion2.denominador;
        int aux2 = fraccion2.numerador * this.denominador;
        Fraccion aux = new Fraccion(aux1 - aux2, this.denominador * fraccion2.denominador);
        return aux;
    }

    @Override
    public String toString() {
        return numerador + " / " + denominador;
    }
}

